﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TerhelesEloszto.Common;

namespace TerhelesEloszto.Engine
{
	/// <summary>
	/// Egy oktató és egy feladat közötti személyes preferenciát reprezentál.
	/// </summary>
	class Like : ILike
	{

		#region ILike Members

		/// <summary>
		/// Mennyire szereti az oktató a feladatot.
		/// </summary>
		public int Stars
		{
			get { return stars; }
			set { stars = value; }
		}

		/// <summary>
		/// A feladat amit szeret.
		/// </summary>
		public ITask Target
		{
			get { return target; }
			set { target = value; }
		}

		/// <summary>
		/// A kapcsolat azonosítója.
		/// </summary>
		public int ID
		{
			get { return ID; }
		}

		/// <summary>
		/// A feladat amit szeret.
		/// </summary>
		/// <returns>A feladat amit szeret.</returns>
		public ITask GetTarget()
		{
			return Target;
		}

		#endregion

		/// <summary>
		/// Üres konstruktor.
		/// </summary>
		internal Like()
		{
		}

		/// <summary>
		/// Konstruktor linq entitázsból.
		/// </summary>
		/// <param name="tul">A linq entitázs.</param>
		internal Like( TASK_USER_LIKE tul )
		{
			stars = tul.STARS;
			id = tul.ID;
		}

		private ITask target;
		private int stars;
		private int id;

		public override bool Equals( object obj )
		{
			if( obj is ILike )
			{
				ILike o = (ILike)( obj );
				return o.ID == id;
			}
			else
			{
				return base.Equals( obj );
			}
		}

	}
}
